<?php

	session_start();

	require('setlang.php');
	require('Models/connectBDD.php');
	require('Models/alert.php');
	require('Models/basics.php');
	require('Models/located.php');
	require('Models/ariane.php');
	
	$Ariane = getArianeGenealogy();

	$connexion = PDO_BDD_connect();
	//On récupère les alertes
	$alerts = getAlerts($connexion,$_SESSION['userid']);

	if (!isValidSessionUser($connexion) || !areValidUserRights($connexion))
	{
		header('Location:logout.php');
	}
	//Si on a une alerte d'un certain type et qu'elle existe pour l'utilisateur
	if (isset($_POST['alert_id']) && isset($_POST['type']) && isGoodAlert($alerts,$_POST['alert_id'],$_POST['type']))
	{
		//Si on accepte de devenir intermédiaire
		if (isset($_POST["ouiint"]))
		{
			$_POST['alert_id'] = intval($_POST['alert_id']);
			//On supprime l'alerte en question
			deleteAlert($connexion,$_SESSION['userid'],$_POST['alert_id'],$_POST['type']);
			//Il faut récupérer le proprio puis envoyer une alerte de type "Ytype" qui indiquera au proprio que c'est accepté.
			addAlertToUser($connexion,getAlertProprioId($alerts,$_POST['alert_id'],$_POST['type']),$_POST['alert_id'],"Y".$_POST['type']);
			//On associe l'intermédiaire au nouveau bien contenu dans l'alerte elle-même
			setIntermedToGood($connexion, $_SESSION['userid'], $_POST['alert_id']);
			$intermed = true;
		}
		//Si on accepte un contrat
		else if (isset($_POST["OuiContrat"]))
		{
			if (isGoodAlert($alerts,$_POST["alert_id"],$_POST["type"]))
			{
				deleteAlert($connexion,$_SESSION['userid'],intval($_POST["alert_id"]),$_POST["type"]);
				addAlertToUser($connexion,$_SESSION['userid'],$_POST["alert_id"],"Y".$_POST["type"]);
						
				$datas = explode(":#",$_POST["type"]);
				//Envoyer un mail vers l'adresse donnée si elle n'existe pas dans la BDD. Sinon envoyer une alerte à l'user directement.
				if (!alreadyExistsMail($connexion,$datas[2]))
				{
					//L'adresse n'existe pas encore dans la BDD.
					//Le mail contient le lien :
					echo '<a href="inscription.php?clientMail='.$datas[2].'&ownerId='.$_SESSION['userid'].'&ownerLocation='.intval($_POST["alert_id"]).'">Cliquez ici pour vous inscrire.</a>';
				}	
				else
				{
					//L'adresse exist, on récupère l'user.
					$userId = getUserIdByMail($connexion,$datas[2]);
					if ($userId == 0)
					{
						exit("Une erreur s'est produite avec l'adresse mail, veuillez contacter l'administrateur.");
					}
					else
					{
						//On modifie les locations (ajout côte à côte, modification du statut...)
						modifyLocationState($connexion,$_SESSION['userid'],intval($_POST["alert_id"]),$datas[3],$datas[4],1);
						addAlertToUser($connexion,$userId,intval($_POST["alert_id"]),"loc");
					}
					
				}
			}
		}
		//On demande validation si on désire répondre négativement
		else if (isset($_POST["nonint"]) || isset($_POST["NonContrat"]))
		{
			$valider = true;
		}
		//Si on supprime une alerte (en validant comme via la croix)
		else if (isset($_POST["validernon"]) || (isset($_POST["alert_delete"]) && ($_POST['type'] == "cnt" || $_POST['type'] == "int")))
		{
			if (substr($_POST["type"],0,3) == "cnt")
			{
				//Récupérons le client pour le prévenir
					
				$datas = explode(":#",$_POST["type"]);
				//Envoyer mail vers l'adresse donnée si elle n'existe pas dans la BDD. Sinon envoyer une alerte à l'user directement.
				if (!alreadyExistsMail($connexion,$datas[2]))
				{
					//L'adresse n'existe pas encore dans la BDD.
					//Le mail contient le lien :
					echo 'La location que vous avez demandé à '.$_SESSION['user'].' a été refusée';
				}	
				else
				{
					//L'adresse exist, on récupère l'user.
					$userId = getUserIdByMail($connexion,$datas[2]);
					if ($userId == 0)
					{
						die("Une erreur s'est produite avec l'adresse mail, veuillez contacter l'administrateur.");
					}
					else
					{
						//Les alertes Nloc et Nint permettent d'afficher le texte négatif
						addAlertToUser($connexion,$userId,intval($_POST["alert_id"]),"Nloc");
					}
					
				}
				
				deleteAlert($connexion,$_SESSION['userid'],intval($_POST['alert_id']),$_POST['type']);
				
			}
			else if ($_POST["type"] == "int")
			{
				addAlertToUser($connexion,getAlertProprioId($alerts,intval($_POST['alert_id']),$_POST['type']),intval($_POST['alert_id']),"N".$_POST['type']);
				deleteAlert($connexion,$_SESSION['userid'],intval($_POST['alert_id']),$_POST['type']);
			}
		}
		//Dernier cas : on supprime une alerte classique
		else if (isset($_POST["alert_delete"]))
		{
			deleteAlert($connexion,$_SESSION['userid'],intval($_POST['alert_id']),$_POST['type']);
		}
	}
	
	$alerts = getAlerts($connexion,$_SESSION['userid']);
	
	require("Views/proprio.php");
	
?>
